home *** CD-ROM | disk | FTP | other *** search
/ Programming in Microsoft Windows with C# / Programacion en Microsoft Windows con C#.iso / Original Code / Tree View and List View / ExplorerLike / ExplorerLike.cs < prev    next >
Encoding:
Text File  |  2001-01-15  |  2.9 KB  |  96 lines

  1. //-------------------------------------------
  2. // ExplorerLike.cs ⌐ 2001 by Charles Petzold
  3. //-------------------------------------------
  4. using System;
  5. using System.Drawing;
  6. using System.Windows.Forms;
  7.  
  8. class ExplorerLike: Form
  9. {
  10.      FileListView      filelist;
  11.      DirectoryTreeView dirtree;
  12.      MenuItemView      mivChecked;
  13.  
  14.      public static void Main()
  15.      {
  16.           Application.Run(new ExplorerLike());
  17.      }
  18.      public ExplorerLike()
  19.      {
  20.           Text = "Windows Explorer-Like Program";
  21.           BackColor = SystemColors.Window;
  22.           ForeColor = SystemColors.WindowText;
  23.  
  24.                // Create controls.
  25.  
  26.           filelist        = new FileListView();
  27.           filelist.Parent = this;
  28.           filelist.Dock   = DockStyle.Fill;
  29.  
  30.           Splitter split  = new Splitter();
  31.           split.Parent    = this;
  32.           split.Dock      = DockStyle.Left;
  33.           split.BackColor = SystemColors.Control;
  34.  
  35.           dirtree        = new DirectoryTreeView();
  36.           dirtree.Parent = this;
  37.           dirtree.Dock   = DockStyle.Left;
  38.           dirtree.AfterSelect += 
  39.                     new TreeViewEventHandler(DirectoryTreeViewOnAfterSelect);
  40.  
  41.                // Create View menu.
  42.  
  43.           Menu = new MainMenu();
  44.           Menu.MenuItems.Add("&View");
  45.  
  46.           string[] astrView = { "Lar&ge Icons", "S&mall Icons", 
  47.                                 "&List", "&Details" };
  48.           View[] aview = { View.LargeIcon, View.SmallIcon, 
  49.                            View.List, View.Details }; 
  50.           EventHandler eh = new EventHandler(MenuOnView);
  51.  
  52.           for (int i = 0; i < 4; i++)
  53.           {
  54.                MenuItemView miv = new MenuItemView();
  55.                miv.Text = astrView[i];
  56.                miv.View = aview[i];
  57.                miv.RadioCheck = true;
  58.                miv.Click += eh;
  59.  
  60.                if (i == 3)         // Default == View.Details
  61.                {
  62.                     mivChecked = miv;
  63.                     mivChecked.Checked = true;
  64.                     filelist.View = mivChecked.View;
  65.                }
  66.                Menu.MenuItems[0].MenuItems.Add(miv);
  67.           }
  68.           Menu.MenuItems[0].MenuItems.Add("-");
  69.  
  70.                // View Refresh menu item
  71.  
  72.           MenuItem mi = new MenuItem("&Refresh", 
  73.                               new EventHandler(MenuOnRefresh), Shortcut.F5);
  74.           Menu.MenuItems[0].MenuItems.Add(mi);
  75.      }
  76.      void DirectoryTreeViewOnAfterSelect(object obj, TreeViewEventArgs tvea)
  77.      {
  78.           filelist.ShowFiles(tvea.Node.FullPath);
  79.      }
  80.      void MenuOnView(object obj, EventArgs ea)
  81.      {
  82.           mivChecked.Checked = false;
  83.           mivChecked = (MenuItemView) obj;
  84.           mivChecked.Checked = true;
  85.  
  86.           filelist.View = mivChecked.View;
  87.      }
  88.      void MenuOnRefresh(object obj, EventArgs ea)
  89.      {
  90.           dirtree.RefreshTree();
  91.      }
  92. }
  93. class MenuItemView: MenuItem
  94. {
  95.      public View View;
  96. }